// Loesung_von_Aufgabe_8.4_4_Kondensation

// Das Array von Datentyp Teilchen mit dem Namen teilchen wird initialisiert
Teilchen[] teilchen = new Teilchen[50]; // Das Array kann 50 Teilchen aufnehmen (Nr. 0 - Nr. 49)

PVector g = new PVector(0, 0); // Die Erdbeschleunigung wird gleich Null gesetzt

void setup()
{
  size(400, 400);

  for (int i = 0; i < teilchen.length; i++)
  {
    // Nun werden die konkreten x- und y-Werte für xTemp, vTemp, dTemp, cTemp (color) und aTemp für jedes Teilchen festgelegt
    teilchen[i] = new Teilchen(new PVector(random(0, width), random(0, height)), new PVector(random(-5, 5), random(-5, 5)), 10, new PVector(255, 0, 0), new PVector(0, 0));
  }
}

void draw()
{ 
  background(255);

  // Nun werden alle Teilchen mit den zugehörigen Funktionen aufgerufen
  for (int i = 0; i < teilchen.length; i++)
  {
    for (int j = 0; j < teilchen.length; j++)
    {
      if (i==j)
        continue; // Damit die Teilchen nicht mit sich selber wechselwirken, wird ein Schleifendurchlauf übersprungen 


      // Prüft für das i-te Teilchen, ob eine Kollision mit dem j-ten Teilchen vorhanden ist
      teilchen[i].collision(teilchen[j]);
    }
  }

  for (int i = 0; i < teilchen.length; i++)
  {
    teilchen[i].move(0.1, g);
    teilchen[i].wand(0.001);
    teilchen[i].zeichnen();
  }
}